#pragma once

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include <assert.h>
#include<string.h>

void InsertSort(int* a, int n);
//void ShellSort(int* a, int n);
////void BubbleSort(int* a, int n);
//
//void AdjustDown(int* a, int n, int i);
//void HeapSort(int* a, int n);
//void SelectSort(int* a, int n);
//
//void QuickSort(int* a, int begin, int end);
////void PartSort(int* a, int left, int right);
//int GetMidi(int* a, int left, int right);

void BubbleSort(int* a, int n);
int PartSort1(int* a, int left, int right);
int PartSort2(int* a, int left, int end);


void QuickSort(int* a, int begin, int end);
void QuickSort1(int* a, int begin, int end);
void QuickSortNonR(int* a, int begin, int end);

void MargeSort(int* a, int n);
void _MargeSort(int* a, int* tmp, int begin, int end);

void MergeSortSNonR(int* a, int n);

void myQuickSortNonR(int* a, int begin, int end);
